#ifndef CONCRETECELLVALUESETTERVISITOR_H_JM_20120819
#define CONCRETECELLVALUESETTERVISITOR_H_JM_20120819

// ## 
#include "CellValueSetterVisitor.h"

namespace jm4bbx {

	template<class T>
	struct ConcreteCellValueSetterVisitor : public CellValueSetterVisitor {
		typedef typename T::CellType ValueType;

		void setValue(const ValueType& val) { value_ = val; }

		virtual void visit(T* val) {
			val->setValue(value_);
		}

	private:
		ValueType value_;
	};

} // namespace jm4bbx

#endif
